在 Day 5 中,我們成功打造了結構化的「情境生成 Prompt」,並驗證能透過 JSON 輸出穩定的角色設定與開場白。
但隨之而來的是工程上的現實考驗:
這就是 Dify 進場的時機。
Dify 是一個開源的 LLM 應用開發平台。它將提示工程(Prompt Engineering)、上下文記憶管理、RAG 檢索與工具調用,抽象化成視覺化的節點(Nodes)。我們可以像拼積木一樣,把複雜的 AI 邏輯組裝成穩定的工作流。
進入 Dify 後,最常面臨的第一個抉擇是:該選 Workflow 還是 Chatflow?這兩種架構在我們的「AI 情境英文教練」專題中各有不可替代的定位。
| 比較維度 | Workflow | Chatflow | 專題對應功能模組 |
|---|---|---|---|
| 互動模式 | 單次觸發,執行完畢即結束 | 多輪交談,持續雙向溝通 | 情境生成 (Workflow) / 角色扮演 (Chatflow) |
| 記憶管理 | 無內建 Memory,需手動傳入陣列 | 原生內建 Memory 視窗管理 | 學習報告 (Workflow) / 英文對話 (Chatflow) |
| 輸入方式 | 表單式自訂變數輸入 | 使用者對話框 + 前置自訂變數 | 前期參數設定 vs. 當前輸入句子 |
| 輸出形式 | 結構化變數或檔案 | 串流(Streaming)對話泡泡回應 | JSON 資料 vs. 沉浸式文字互動 |
在 Dify 的畫布上,有幾個節點是建構本專題不可或缺的基石:
{{#start.user_scenario#}} 語法引用上游傳來的變數。json ... )時,透過 Code 節點執行正規表達式或 json.loads(),能確保下游節點拿到乾淨的資料物件。把 Day 5 的成果搬到 Dify 上,整體鏈路設計如下:
Start 節點(輸入情境參數) ➔ LLM 節點(Day 5 Prompt) ➔ Code 節點(驗證/清洗 JSON) ➔ End 節點(輸出結構化資料)
Day 6 梳理了 Dify 的核心運作機制。透過區分 Workflow 與 Chatflow,我們為專題理清了清晰的架構:
明天(Day 7),我將正式動手在 Dify 畫布上建立這套情境生成 Workflow,實際串起 Start 到 End 節點,並進行第一次完整的端到端(End-to-End)視覺化測試!